package org.example.code.test2025.three_month;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class test0308_2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        List<Node> list = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            int x = in.nextInt();
            int y = in.nextInt();
            list.add(new Node(x, y));
        }
        fun(n, list);
    }

    private static void fun(int n, List<Node> list) {
        Collections.sort(list);
        for (int i = 0; i < n; i++) {
            Node node = list.get(i);
            int count = 0;
            int a = 0,b=0,c=0,d=0;
            for (int j = 0; j < n; j++) {
                if (j != i) {
                    Node nn = list.get(j);
                    if (nn.y > node.y && nn.x == node.x) {
                        a++;
                        if (a == 2) {
                            count++;
                        }
                    }
                    if (nn.y < node.y && nn.x == node.x) {
                        b++;
                        if (b == 2) {
                            count++;
                        }
                    }
                    if (nn.x < node.x && nn.y == node.y) {
                        c++;
                        if (c == 2) {
                            count++;
                        }
                    }
                    if (nn.x > node.x && nn.y == node.y) {
                        d++;
                        if (d == 2) {
                            count++;
                        }
                    }
                }
            }
            System.out.println(count);
        }
    }
}

class Node implements Comparable<Node> {
    int x;
    int y;

    Node(int x, int y) {
        this.x = x;
        this.y = y;
    }

    @Override
    public int compareTo(Node o) {
        if (this.x != o.x) {
            return Integer.compare(this.x, o.x);
        }
        return Integer.compare(this.y, o.y);
    }
//    public static void main(String[] args) {
//        Scanner in = new Scanner(System.in);
//        int t = in.nextInt();
//        in.nextLine();
//        for(int i=0;i<t;i++){
//            String s = in.nextLine();
//            fun(s);
//        }
//    }
//
//    private static void fun(String s) {
//        StringBuilder sb = new StringBuilder();
//        int p=0;
//        for(int j=0;j<s.length();j++){
//            char c = s.charAt(j);
//            if(Character.isDigit(c)){
//                if(p==0){
//                    p=c-'0';
//                }else{
//                    p=p*10+(c-'0');
//                }
//            }else{
//                if(p!=0){
//                    int len = sb.length();
//                   if(len>0){
//                       int offset = p%len;
//                       if(offset!=0){
//                           sb=new StringBuilder(sb.substring(offset)).append(sb,0,offset);
//                       }
//                   }
//                    p=0;
//                }
//                if(c=='R'){
//                    sb.reverse();
//                }else{
//                    sb.append(c);
//                }
//            }
//        }
//        System.out.println(sb.toString());
//    }
}